
ze strony:
http://4programmers.net/C/Artykuy/Wygld_XP_naszej_aplikacji_przy_wykorzystaniu_plikw_.manifest






W chwili obecnej na kadej (dobrej) stronie powiconej programowaniu znajduje si opis jak przy pomocy plikw .xml i funkcji InitCommonControls () sprawi aby nasz program nabra wygldu Windows XP. Ja jednak (jak zwykle skromnie ;-) ) znalazem inny ciekawy sposb (pisz "znalazem", a powinienem napisa "podpatrzyem", poniewa sposb ten zauwayem w jednej z Microsoft'owych aplikacji - bodaje NetMeeting). Oto on:

Aby nasza aplikacja w systemach wyposaonych w Lun (czyli interfejs "XP") wygldaa "adnie", 
z jej plikiem .exe podczas kompilowania nie musimy nic robi. 
Wystarczy e w katalogu w ktrym "trzymamy" program utworzymy plik: 
nazwa_programu.exe.manifest (oczywicie zamiast nazwa_programu wstawiamy nazw naszego pliku .exe). W skrcie ten proces nazywania pliku mona przedstawi tak: na sam koniec nazwy naszego programu (po rozszerzeniu .exe) dodajemy sowo .manifest (wana jest kropka na pocztku). Do tak przygotowanego pliku wklejamy nastpujc zawarto:


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="2.0.0.0"
processorArchitecture="X86"
name="Nazwa programu, dowolna "
type="win32"
/>
<description>Opis Programu</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>


Oczywicie to rozwizanie ma swoje plusy i minusy:

Plusy: 
> szybko wykonania takiego pliku .manifest (przez nas)

> mniejszy plik wykonywalny aplikacji (nie kompilujemy razem z nim pliku .xml)

> program UPX niekiedy nie radzi sobie zbyt dobrze z plikami, ktre miay "w sobie" plik .xml poniewa kompresowa go, a wtedy wystpowa bd (trzeba byo ustawi brak kompresji dla zasobw, co zwikszao rozmiar pliku wykonywalnego)

Minusy: 
> aplikacje trzeba rozprowadza razem z plikiem .manifest (moe przeszkadza gdy program mieci si np. w jednymi pliku .exe). Mozna jednak doda funkcj, ktra sprawdzaa by czy plik .manifest znajduje si w katalogu programu, a w przeciwnym razie tworzya go.

> gdy uytkownik (nie programista) zmieni przez przypadek nazw naszego pliku .exe, plik .manifest przestanie dziaa (tego minusa te da si unikn, patrz minus pierwszy)

